Multi-function logic module employing read-only associative memory arrays

ABSTRACT

A selectable-function, logic module, capable of being implemented on a single large-scale integrated (LSI) chip, in which all logical operations, including internal control functions, are performed by read-only associative memory (ROAM) arrays. Such modules, capable of both static combinational logic and sequential logic, may be employed as the basic buildingblocks for large-scale processing systems or subsystems replacing the variety of discrete-function logic devices which would otherwise be employed.

llnited States Patent 1191 Berg et a1.

[451 Aug. 13, 1974 1 MULTI-FUNCTION LOGIC MODULE EMPLOYING READ-ONLY ASSOCIATIVE MEMORY ARRAYS [75] Inventors: Robert Orval Berg; Kenneth James Thurber, both of St. Paul, Minn.

[73] Assignee: Honeywell Inc., Minneapolis, Minn.

[22] Filed: Nov. 15, 1972 [21] Appl. No: 306,689

[52] US. Cl... 340/173 AM, 340/173 SP, 340/1725 [51] Int. Cl ..G11c 15/00, G1 1c 17/00 [58] Field of Search... 340/173 SP, 173 AM, 172.5

[56] References Cited UNITED STATES PATENTS 2,872,664 2/1959 Minot 340/173 SP 3,109,925 11/1963 Wood 340/173 SP CLOCK OD 00 00 D i 1 3 e CLUCKED FLIP FLOP?) SELECT FUNCTION LINES CLOCK 21X 9 ROAMl U (FIG-13A) 4/1 66 Robb 340/173 SP 6/1972 Cassen 340/173 SP Primary E.\'aminr-Terrell W. Fears Attorney, Agent, or Firm-Molinare, Allegretti, Newitt & Witcoff 5 7 ABSTRACT A selectable-function, logic module, capable of being implemented on a single large-scale integrated (LS1) chip, in which all logical operations, including internal control functions, are performed by read-only associative memory (ROAM) arrays. Such modules, capable of both static combinational logic and sequential logic, may be employed as the basic building-blocks for large-scale processing systems or subsystems replacing the variety of discrete-function logic devices which would otherwise be employed.

3 Claims, 16 Drawing Figures POWER GROUND PAIENIEmus 13 m4 3,829,846

sum 02 or 11 w FIG;

A B c o A a E c E o 5 L L f wmso o L n L L L L FIG.5

A a c D 5 T L k WIRED -0 FUNCTION LOGIC NUMBER FUNCT'ON REPRESENTATION 0 QUAD TWO-INPUT AND Q Q Q G l DUAL FOUR-INPUT AND G9 G9 2 EIGHT-INPUT AND HQ 3 TWO DUAL TWO-INPUT AND, OR (5 G) &

4 DUAL FOUR-INPUT AND, OR

5 AND,OR INPUT RS FLIP FLOP RS TWO TWO INPUT AND R5 R5 6 FF FF RS FLIP FLOP G; G;

TWO TWO-INPUT AND FF A JK 7 FF JK FLIP FLOP Q g;

FIG.7

PATENTEDmc 13 1914 saw us or 11 v QUE m 2 0 0 0 0 0 0 0 0 -0 0 05050 02P202000200 0090-030 5095 05 2N 2 0 0 0-010 0 0 0 22002 05050 2220250200 0000 03. 022 S02 005 00 0 0 0 010 0 0 0 22202 H: 0.5050 Efizuzwizou 0000-030 00 0 22 .503 02; 2 0 9 0 0 22002 H0 05050 Efizwzudzou 0000-01; 00 50; m0 022 .N 0 00202000200 4 0 9 022 00 S02. 2 200 ON 0 000202000200 00 00 002 S0; 2 0200 2 0 022002 00 E02. 00 022 S03 2 200 0 0 022002 0 00 022 S0; 2 200 0 0 0 05202000200 022 20 S03 02; 200 02:. 0. 0 0 00202000200 0 m0 002 S02 02; 200 02; 0. 0 0 022002 0 E02. 00 022 Sn 2 0.2; 200 03k 3 0-0 22002 0 20 022 02C 200 02; 0. 0 000202000200 90 002 .502 0 0 00202000200 06 00 502 0 0 22202 0 0 022 502. 0 0 0 2562 0 0222 50; 0 0 0-0 000202000200 002 50272 200 0 0 0 00202000200 60 m0 .502T2 200 h 0 0 22202 00 0222 S021 200 0 0-0 2502 6 022 50272 200 2502 F000 0 0 0 0 0 u s W W Q00 000E032. 0200 2 0 0 0 0 00202000200 000 002 502T- 0200 0 0 0 0 0 00202000200 000 00 502 0 0200 N 0 0 0 0 022002 000 0222 S02T- 0200 0 0 0-0 22002 8 022 S02T- 0200 000202 2050000 5050 0502. 0 0 0 002000000 20.5200

PATENTEDwc 13 m4 SHE-7 05 0F 11 02300.0 mu30m PATENTEUAU: 13 I974 sum 01 or11 FIG. ll

2 5 8 H l 3 5 7 0 ow o om ll 4 7 m P w F 4 4 A j 41W A l i 1 m hl l ul khh PATENTEDAus 13 m4 sum -osor11 OOI ooo oooo. 00: 0000 OIO OOI oooo OOI OOOI o|| 00a 0000 OIO 'OOIO IOO OIO oooo o|o oo|| |o| OIO 0000 oil OIOO ||0 Oll 0000 Oll OIOI III 0:: 0000 I00 OllO 000 I00 0000 I00. o||| oo| I00 0000 lol IOOO OIO no: 0000 |o| |oo| 0|: IOI 0000 no |o|o I00 I o 0000 o o l lol no 0000 III ||oo IIO Ill 0000 III llOl III III 0000 000 IIIO DCIOOSTOP DCIOIRESET DCIIOCOUNT up DCIIICOUNT FIG.I3A

PATENTEDIIII: Ia I974 3.8%9346 snwoeunp PDC 101'1213 IXX 00x 0II 0I0 000 0000 0000 000I IOOIU) 000I 000I 000I 00I0 0000 00I 0 00 I 0 00 I 0 00 I I 000 I 00II 00II 00II 0I00 00I0 0I00 0I00 0I00 0I0I 00II oIo I 0I0I 0I0I OllO 0I00 0II0 0I 0 0II0 oIII 0I0I 0III 0III 0III I000 0II0 I000 I000 I000 I00I 0III I00I I00I I00I 00000) I000 I0I0 I0I0 I0I0 000I 000I I0II I0II I0I 0000 0000 II00 II00 IIOO 000I 000I II0I II0I II0I 0000 0000 IIIO |||0 lllo 000I 000I IIII IIII llll 0000 0000 PDC=|XX PRESET PDCIOOXHOLD I P0c=0II COUNTUP FIGI3B PDC=O|O COUNTDOWN U VALUE IN FIFTH COLUMN INDICATES THE OUTPUT VALUE WHEN IT BECOMES I. THIS Is THE "CARRY ouT" 0 PATENTED 1111; 13 1911 3.828.846

PDC

1 1 1 1 IXX 00X OlI OIO OIOI OIOI OIOI OIIO OIOO OIIO OIIO OIIO OIII OIOI OIII OIII Olll IOOO OIIO IIOO IIOO IIOO IIOI IOII IIOI IIOI IIOI IIIO IIOO IIIO IIIO IIIO Illl IIOI llll III! III! 0000(I) IIIO PDC=IXX PRESET PDC=OXXHOLD P0c=011 COUNTUP PDC=0IO COUNT DOWN FIG.I3C

() VALUE IN FIFTH COLUMN INDICATES THE OUTPUT VALUE WHEN IT BECOMES 1. 1111s 15 THE "CARRY OUT" 0 PATENIEDAU: 1 3 m4 3.839.846

! sum -11ur11 CLOCK 2 3 4 n OD OD OD CLOCKED FLIP- FLOPS P 2|x 9 25x 9 21 x 9 ROAM! ROAMI ROAMI 0 (FIG. I3A) FIG.I3B) (FIG. 13c) SELECT FUNCTION LINES CLOCK MULTl-FUNCTION LOGIC MODULE EMPLOYING READ-ONLY ASSOCIATIVE MEMORY ARRAYS BACKGROUND OF THE INVENTION This invention relates to information processing systems and, more particularly, to circuits for performing logical operations upon data signals in such systems.

The design of a complex information processing system, such as a computer, often begins with the formulation of large numbers of albegraic statements, each describing a logical sub-function to be accomplished. The 1 physical system is then realized by selecting, from an inventory of available devices, those capable of performing the various individual logical operations required by each algebraic statement.

From several standpoints, it is desireable to minimize the number of different types of devices used. Replacement and repair is simplified when the system is constructed from only a small number of different building blocks". Reducing the number of different devices means that the selected devices are used more often, and this increased use lowers the unit cost of device development, manufacture and distribution.

It is accordingly a conventional practice, in the product design phase of a new information processing system, to specify a limited inventory of devices to be used. Where logic statements originally formulated call for functions unavailable from any device in the selected inventory, either a new statement is written which is compatible with the available devices, or a special purpose component is added to the inventory to accomplish the needed, but otherwise unavailable,

function. In the main, however, it has been found that,

with careful logic design, a relatively small number of different components can be employed to implement a major portion of the needed operations.

It is therefore a principal object of the present invention to provide a single, modular, multi-function component, capable of accomplishing the most widely needed functions of a given processing system and, in this way, to lower the cost, and to simplify the maintenance, of such a system.

In a principle aspect, the present invention takes the form of a selectable-function. combinational logic module, capable of being implemented on a single large-scale integrated (LSI) chip, in which substantially all logical operations, including internal control functions, are performed by read-only associative memory (ROAM) arrays. The invention may be arranged to perform either sequential or static logic operations, and the two versions may be combined as building blocks to form a more generalized sequential processing systern.

These and other objects, features and advantages of the present invention may be more clearly understood through a consideration of the following detailed description which is presented in connection with the attached drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I is a schematic diagram ofan illustrative 16 word by I bit read-only memory (ROM) of known design.

FIG. 2 is a schematic diagram of an illustrative three input, single output read-only associative memory of a first known class (ROAM l).

FIG. 3 is a schematic diagram of an illustrative 5 input, single output read-only associative memory ofa second known class'(ROAM 2).

FIG. 4 illustrates the meaning of the array crossconnection symbols employed in FIGS, 5, 6 and 12 of I the drawings.

FIG. 5 illustrates the manner in which a read-only associative memory of the first class (ROAM 1) may be used to realize arbit rarylogic statements; in this case: AB CD AC ABCD.

FIG. 6 illustrates the manner in which a read-only associative memory of the second class (ROAM 2') may be used torealize arbitrary logic statements; in this case, AB AD C D.

FIG. 7 is a table showing 8 commonly needed combinational logic functions which may be supplied by a single module constructed in accordance with the principles of the present invention.

FIG. 8 is a block diagram of a module constructed according to the present invention for supplying the eight functions listed on the table of FIG. 7.

FIG. 9 is a table showing that, by selection of appropriate outputs and the selective use of complementary inputs, 25 specific logic functions can be carried out by the module of FIG. 8.

FIG. 10 is a block diagram showing the manner in which the module of FIG. 8 is instrumented using ROAM 2 arrays.

FIGS. II and 12 respectively show the conventional logic symbol diagram for 2 J K flip-flop and the details of a ROAM 2 array for providing the equivalent functron.

FIGS. 13A, 13B, and 13C are flow tables which respectively define the characteristics of the resettable binary counter, the BCDdecade counter, and the presettable binary counter ROAM 1 arrays used to implement the sequential logic module of FIG. 14; and

FIG. 14 is a block diagram of a sequential logic. module employing the principles of the present invention and realized through the use of ROAM I arrays.

DESCRIPTION OF READ-ONLY DEVICES AND THEIR USE AS LOGIC DEVICES Before discussing the details of the multi-function logic module embodying the principles of the present invention, a brief review of the structure and operation of both the read-only memory (ROM) andtwo classes. of read-only associative memory. (ROAM I and ROAM 2) is presented immediately below. Further information on such memory arrays and the background of the present invention may be found in applicants paper entitled Universal Logic Modules Implemented Using LSI Memory Techniques", pp. 177-19 4, AFIPS Conference Proceedings, Fall Joint Computer Conference (presented November 16, l97l I FIG. I shows a l6-word by l-bit read-only memory (ROM). This device is operated by placing a four-bit address onto the four input lines I I I and 1,.This address then reads out the bit stored at the corresponding address in the ROM. If the diode at the address is connected to both lines a 1 (V is read out, otherwise a 0 (ground) is read out.

To see how the device actually works, assume that V is above ground (G) and R is much greater than R When a four-bit address is placed on I I I, and I exactly one of the lines A, B, C, and D becomes V and the rest are G. Simultaneously, exactly one of lines 1,

2, 3 and 4 becomes V and the other lines are G. Assume lines C and 2 are selected and become V The transistor T then forms a path for current to flow through R, to ground. This current is supplied by one of two sources. If a diode exists at the intersection of 5 lines C and 2 [as it does in FIG. 1] then the current is supplied through the diode at the intersection of lines C and 2; i.e., point is at V which forces the output to be near V In order to see what happens when the diode is not connected, assume a new address is placed on the input lines and lines 2 and B go to V,;. The diode at the inter section of lines 2 and B is not connected; therefore, point 0,, tends to go to G and current is supplied by the power supply through R, and D,, to T which is a path to ground. Since R, was made much larger than R,, the output is forced to G. The diodes D,,, D D and D prevent unwanted currents from flowing. In the case under consideration, lines 2 and B are at V but since line 2 is at V,;, the diode at the intersection of lines 2 and C wants to form a current path. Since T is not turned on (line C is at G), current would tend to flow to point 0,, then to point 0,, (raising the output to V finally to ground through T if diode D, were removed. Therefore, diode D is necessary to stop this unwanted flow of current and keep the output at ground (G) which is what was desired.

FIG. 2 shows a three-input, one-output, read-only associative memory (ROAM). This device is operated by placing a three-bit address onto the three input lines A, B, and C. If this address matches an address that has been previously stored in the ROAM, then a 1 appears on the output line of the ROAM. If the address doesnt match any of the addresses stored in the ROAM a 0 appears at the output of the ROAM. This network can be used to generate logic functions by associating a minterm with a minterm that has been previously stored in the ROAM. To see how the circuit actually works, assume that -V,; is below ground (G) and that R, is much greater than R,. If negative logic is assumed (V,; l and G 0) then the circuit inELG. 2 can be used tt p e form the logic functionf= ABC AC ABC ABC. Assume that A l, B l, and C l is put onto the input leads then in row 3 of the ROAM in FIG. 2, V,; appears at the vertical connection point of all diodes in row 3. This leaves point 0,, near V,; and current flows through R R and R, to the terminal at V,;. Since R is much greater than R,, the output is about -V,; and a logical I appears at the output. All other rows are mismatched and each of the lines 0,, 0 and 0, were held to ground because (considering row 1) in each row at least one diodes anode was tied to ground, causing the horizontal line to be at ground, therefore, not biasing the diodes D,, D and D, on. If the address was a mismatch in all rows, 0,, 0 0 and 0, would all be near G and the output would be G.

In summary, a mismatch on any bit causes the row to The read-only device of FIG. 2 (ROAM l) employes I input inverters to provide double-rail logic for all variables. Where double-rail logic is required by less than all variables, the second class of read-only associative. memory (ROAM 2) shown in FIG. 3 maybe used. This arrangement, also called the SLT (Solid Logic Technology) array, and its use in generating logic functions, is further discussed in a paper entitled Structured Logic, by R. A. Henle et al., pp. 61 68, AFIPS Conference Proceedings, Fall Joint Computer Conference (November 1969).

FIGS. 2 and 3 illustrate two versions of the read-only associative memory using diodes; however, they could have been just as easily implemented using transistors. In FIG. 2, if V,; 1 and G Othen it can be seen that the output line E is 1 if and only if the input word A, B, and C exactly matches a word stored in the ROAM. This then allows the construction of logical product terms, one in each row of the ROAM. These product terms can then be wire ORed together to form a Bool can function in the sum of products form. FIG. 5 illus trates thej nplementation of the function F I AB CD AC ABCD in ROAM l. A function such as f= AD C D cannot be imple mented in ROAM 2 unless both of the variable D and D are available on a separate line as shown in FIG. 6. Therefore, ROAM2 is not quite as flexible as ROAM l, but it can be used for functions that do not require double rail logic for all variables.

DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION In its preferred form, the present invention makes use of the read-only associative memory arrays to provide multi-function, programmable combinational logic modules which may be employed, in place of a variety of single-function devices, as the basic building block of a large-scale information processing system.

The preferred combinational module provides a known group of 8 basic logical functions identified in the table of FIG. 7 and is generally organized as shown in the block diagram of FIG. 8.

Each of the eight functions listed in the table of FIG.

7 is provided by a read-only associative memory array, the arrays having eight common input conductors I, through I,,. That one of the eight arrays which is to be operative is selected by the 3-bit function select control signal (P,, P P applied to the function select decoder, which is itself implemented by means of a readonly associative memory array.

The module delivers 4 true outputs (O 0,, O 0,) and 4 complementary outputs (0,, 0 0 0,) each of the eight output conductors having its own output driver OD. The connections between the inputs to the inverters and output drivers and the outputs of each functional array are indicated by the numbered circles (e.g., the input l to the output driver for output 0 is connected to the uppermost output conductor 1 from each of the eight arrays).

Because each module is interconnected with like modules to produce the desired, large-scale logic system. and because both true and complementary outputs are available from each module, by selection of appropriate outputs and judicious use of complementary inputs, the module can produce 25 different major functions as shown in FIG. 9. The single module is therefore capable of replacing a large percentage of the random logic packages which would otherwise be employed. With enough modules any arbitrary logic functions can be generated. Moreover, the consequent volume use of this single, versatile module reduces .its unit cost to a level competitive with the use of numerous,

less complex packages.

The use of the read-only associative memory array to implement the combinational module possesses significant advantages. First, the consistent use of such arrays yields a highly regular structure with a minimum random wiring, a factor of great importance in design and manufacture of LSI circuit packages. Although the read-only memory (ROM) of FIG. 1 may be employed to realize the module, the use of read-only associative memory (ROAM 1 or ROAM 2) arrays eliminates the need for the large number of small decoders needed with ROM arrays, and produces a faster device due to the reduction in multiple-level gate delays. The comparative economics between using ROM, ROAM l and ROAM 2 arrays to realize the module are discussed in more detail in applicants paper entitled Universal Logic Modules Implemented Using LS1 Memory Techniques, pp. l77l94, AFIPS Conference Proceedings, Fall Joint Computer Conference (197] FIG. of the drawings shows the manner in which the module, shown in block form in FIG. 8, is instrumented using ROAM-2 arrays. In FIG. 10, the eight ROAM 2 arrays provide, from left to right, the functions listed in the table of FIG. 7.

The details of the most complex of these arrays (the two JK flip-flops) is shown, by way of example, in FIGS. I1 and 12 of the drawings, FIG. 11 showing the conventional logic symbols diagram for the two J K flipflops, and FIG. 12 showing the ROAM 2 array crossconnections used to realize this function. It will be apparent, the remaining functions of FIG. 7, or any other arbitrary selected functions which might be desired, may be instrumented using a ROAM 2 array in a similar manner. The 3 X 8 ROAM l array shown at the lower left in FIG. 10 energizes the lowermost, horizontal row conductor" in one of the eight arrays, depending upon the value of the 3-bit control signal applied at pins P11 'Zr ll- Thus the module may operate upon the applied information signals in any one of eight possible ways, depending on the control signal applied to the functionselecting array. The module may operate in a dedicated fashion, with fixed function-selecting control signals being continuously applied. Alternatively, in a sequential machine, the function-selecting control sig nals may change in time, allowing the module to operate as first type of logical device at one time, but as other types of devices at later times.

Moreover, the principles of the present invention may be employedto produce a selectable-function sequential logic module, which may be interconnected with the combinational module previously described. to form more complex sequential information processing systems and subsystems.

The sequential module is described functionally by FIGS. 13A, 13B and 13C of the drawings, and schematically in FIG. 14 of the drawings.

FIGS. 13A, 13B and 13C are flow table descriptions of the three functions that can be performed by the module, these being three different counters. The fourbit binary counter, described by FIG. 13A, has the capability to count up or down with a range of '16 different numbers; i.e., 0 to 15. This counter can also be reset to 0. The second countendescribed by FIG. 13B, is an up-down BCD (binary-coded decimal) decade counter. This counter can count up or down and can also be preset to a value. This counter is constrained to count between 0 and 9 and can be ganged with other decade counters to form a counter capable of counting between 0 and 999 9. The last counter, described by FIG. 13C, is an updown, four-bit binary counter. This counter can be preset to a value and is constrained to count between 0 and 15. This counter can also be ganged with other binary counters. The'differences between the first counter and this counter are that this counter can be preset to any value and ganged with other binary counters. I i

As shown in FIG. 14, the three counting functions defined respectively by the flow tables of FIGS. 13A, 13B and 13C are realized with ROAM 1 (double-rail) arrays. The output count from the array selected, by appropriate energization of the function select lines, are presented through the output drivers at 0 '0 '0 and 0 The carry output" appears at D... The 4 count values are also applied, through clocked flip-flops to the 5 X 8 ROAM l array (forming 8 AND gates driving 4 wired OR's);which functions to selectively deliver the last output (0 ,0 0 0,) or the preset input (P P P P to the 3 counter arrays via the four uppermos-t, horizontal, double-rail input conductors, (1 1,, I '1 depending upon whether or not the preset control conductor P is energized. The D and C inputs, each connected through 2 X l ROAM 'l clocked AND gates to horizontal inputs to the counter arrays.

While specific examples of combinational and sequential modules have been described, it will be apparent to those skilled in the art that numerous modifications may be made to the specificarrangements described without departing from the true spirit and scope of the invention.

What is claimed is:

l. A modular circuit for performing a selected one of plural combinational logic functions, said circuit comprising, in combination,

N data input terminals for receiving a parallel-binary data signal containing up to N 'bitsof information from a first external source;

control input terminals for receiving control signals from a second external source;

data'output terminals for deliveringresultsignals to an external utilization circuit;

a plurality of read-only associative memory arrays, each having at least N input row data conductors, at least one function-selecting input row conductor, and plural output column conductors with specified semiconductor cross-connections :between said column and row conductors, said N input row conductors being common to all of said arrays;

means connecting said N common input row conductors to receive said parallel-binary data signalfrom said N data input terminals;

means for supplying programming signals to each of said function-selecting input row conductors to activate a selected one of said arrays in response to .thecontrol signals to said control input terminals; and

v 3. A logic module as set forth in claim 2 in which M equals one and said means for supplying program signals to said M function-selecting input row conductors comprises a further read only associative memory array having its input row conductors connected to said control input terminals and each of its output column conductors connected to the function-selecting input row conductor in a different one of said arrays. 

1. A modular circuit for performing a selected one of plural combinational logic functions, said circuit comprising, in combination, N data input terminals for receiving a parallel-binary data signal containing up to N bits of information from a first external source; control input terminals for receiving control signals from a second external source; data output terminals for delivering result signals to an external utilization circuit; a plurality of read-only associative memory arrays, each having at least N input row data conductors, at least one functionselecting input row conductor, and plural output column conductors with specified semiconductor cross-connections between said column and row conductors, said N input row conductors being common to all of said arrays; means connecting said N common input row conductors to receive said parallel-binary data signal from said N data input terminals; means for supplying programming signals to each of said function-selecting input row conductors to activate a selected one of said arrays in response to the control signals to said control input terminals; and means connecting each of said data output terminals to at least one column conductor in each of plural ones of said arrays.
 2. A logic module as set forth in claim 1 including a second set of data output terminals for delivering complementary result output signals to an external utilization circuit, each of said second set of output terminals being connected to the output of an inverter whose input is connected to a single output column conductor in each of plural ones of said arrays.
 3. A logic module as set forth in claim 2 in which M equals one and said means for supplying program signals to said M function-selecting input row conductors comprises a further read-only associative memory array having its input row conductors connected to said control input terminals and each of its output column conductors connected to the function-selecting input row conductor in a different one of said arrays. 